This directory contains source code which accompanies a series of papers on SGI's Xserver. The papers exist as PostScript files in toolbox/documents/X.
This directory contains the following:
README ascii version of this html file. Makefile A Makefile to compile the supplied demonstation code. 3color.ps A Three Color Cursor for X describes how, with SGI hdw 3color.ps.Z supporting three color cursors, one can generate such cursors using X. An explication of how to implement the previously undocumented XSGIMiscSetThirdCursorColor routine, which allows the third color of an X cursor to be specified via the use of SGI's proprietary SGI-SUNDRY-NONSTANDARD extension. This interface is the same mechanism used by the IRIS GL's internal cursor management routines to implement three color cursors in the GL. OpenGL developers are already aware that X is how non-3D rendering tasks are performed. This means OpenGL developers should anticipate using X the generate three color cursors. This mechanism is not part of the X standard and is only supported on Silicon Graphics X servers. But it is easy to query if a given X server supports it or not so programs can be written to use three color cursors if available. And if not, programs can fall back to use two color cursors for less capable X servers. tulip.c Sample code for using three-color cursor program which turns the root window cursor into a tulip. To return to the default root cursor after running tulip, do: /usr/bin/X11/xsetroot -cursor_name X_cursor -fg red -bg white (the above is included in .stop3colortulip) Also, if you run a program like twilight, bgpaste or that fish background program that tries to totally cover up the root window, you won't ever see the tulip cursor. imp_layers.ps A Fully Functional Implementation of Layered Windows imp_layers.ps.Z explains the semantic basis for SGI's current X server support for layered windows. This paper was presented at the 7th Annual X Technical Conference in Boston, Mass. ABSTRACT: Incorporating layered windows into the X server is a non trivial task, which has been attempted repeatedly in the past, with varying lack of success. We present our criteria for the proper behavior of layered widnows. We show that the assumptions built into the DIX windowing code prevent the proper implementation of layered windows, proving that the current windowing code is inherently device-dependent. We propose a restructuring of the sample server, moving much of the windowing code to DDX. We show how the sample windowing model can be extended to clip layered windows, and what changes are required to other parts of the server which depend in part on knowledge of the current window tree. prog_layers.ps Programming X Overlay Windows explains how to use SGI's prog_layers.ps.Z SERVER_OVERLAY_VISUALS convention to portably create X windows in the overlay planes. ABSTRACT: Overlay planes provide an alternate set of frame buffer bitplanes which can be preferentially displayed instead of the normal set of bitplanes. Overlay planes have been common in high-end graphics systems for some time. Recently, work has been done by Silicon Graphics to integrate overlay plane support into the X Window System. A standard convention proposed and implemented by Silicon Graphics allows X client writers to create windows in the overlay planes. This article describes how to write programs to utilize overlay planes. XLayerUtil.c Sample code for routines to portably query overlay visuals described in the prog_layers.ps article. XLayerUtil.h Acommpanying header file. layerdemo.c Sample code demonstrating how to use pure-X overlay windows to achieve transparency effects. xlayerinfo.c Sample code for a program to list a server's visuals including visual layering information. xsgi.ps Going Beyond the MIT Sample Server: The Silicon Graphics xsgi.ps.Z X11 Server explains the enhanced capabilities of SGI's X server. ABSTRACT: The MIT X11 Sample Server is the starting point for nearly all X11 server implementations. Most server vendors add value beyond the sample server. Silicon Graphics has done extensive work to enhance the performance and functionality of its X server implementation. The server supports X across Silicon Graphics' entire line of high-performance graphics hardware. This article describes six important areas of enhancement made to the Silicon Graphics server: integration with the IRIS GL graphics library, a high performance input subsystem, the non-frame buffer porting layer, support for specific hardware features, the dynamic linking of hardware support, and the Display PostScript extension. crosshair.c Sample code for turning the root window's cursor into a crosshair cursor. To return to default root cursor, run /usr/bin/X11/xsetroot -cursor_name X_cursor -fg red -bg white (the above is included in .stopcrosshair) Also, if you run a program like twilight, bgpaste or that fish background program that tries to totally cover up the root window, you won't get the crosshair.